<template>
  <div>
    <div>「最多上传 5 张照片」</div>
    <br>
    <div class="demo-upload-list" v-for="item in uploadList">
      <template v-if="item.status === 'finished'">
        <img :src="item.url">
        <div class="demo-upload-list-cover">
          <Icon type="ios-eye-outline" @click.native="handleView(item.name)"></Icon>
          <Icon type="ios-trash-outline" @click.native="handleRemove(item)"></Icon>
        </div>
      </template>
      <template v-else>
        <Progress v-if="item.showProgress" :percent="item.percentage" hide-info></Progress>
      </template>
    </div>
    <Upload ref="upload" name="image" :show-upload-list="false" :on-success="handleSuccess" :format="['jpg','jpeg','png']" :max-size="2048"
      :on-format-error="handleFormatError" :on-exceeded-size="handleMaxSize" :before-upload="handleBeforeUpload" multiple type="drag"
      action="https://www.fxpixels.site/tp5/public/index.php/backend/imgupload" style="display: inline-block;width:58px;">
      <div style="width: 58px;height:58px;line-height: 58px;">
        <Icon type="camera" size="20"></Icon>
      </div>
    </Upload>
    <Modal title="View Image" v-model="visible">
      <img :src="'https://www.fxpixels.site/tp5/public/uploads/' + imgName" v-if="visible" style="width: 100%">
    </Modal>
    <div class="upload-button">
      <Button type="primary" shape="circle" @click="submit()">提交</Button>
    </div>
    <div>
      <br>
      <p>已上传：</p>
      <p v-for="item in hasUpload">{{ item }}</p>
    </div>
  </div>
</template>


<script>
export default {
  data() {
    return {
      uploadList: [],
      imgName: "",
      visible: false,
      submitList: [],
      hasUpload: [],
    };
  },
  methods: {
    submit(){
      let that = this
      if(this.submitList.length == 0){
        this.$Message.warning("你还没有选择图片。");
        return false;
      }
      var su;
      this.$axios.post('backend/imgsubmit', {submitList: this.submitList}, function(res){
        if(res == 0){

        }else{
          that.hasUpload = that.hasUpload.concat(res)
          console.log(that.hasUpload)
        }
        
      })
    },
    handleView(name) {
      this.imgName = name;
      this.visible = true;
    },
    handleRemove(file) {
      const fileList = this.$refs.upload.fileList;
      this.$refs.upload.fileList.splice(fileList.indexOf(file), 1);
      this.submitList.splice(file.name, 1);
    },
    handleSuccess(res, file) {
      file.url = "https://www.fxpixels.site/tp5/public/uploads/" + res;
      file.name = res;
      // console.log(file)
      // console.log(this.$refs.upload.fileList)
      // let img = {
      //   name: res,
      //   url: 'https://www.fxpixels.site/tp5/public/uploads/' + res,
      // }
      // console.log(img)
      this.submitList.push(res);
      // console.log(this.submitList);
      // this.uploadList = this.$refs.upload.fileList
      // console.log(this.uploadList)
    },
    handleFormatError(file) {
      this.$Notice.warning({
        title: "The file format is incorrect",
        desc:
          "File format of " +
          file.name +
          " is incorrect, please select jpg or png."
      });
    },
    handleMaxSize(file) {
      this.$Notice.warning({
        title: "Exceeding file size limit",
        desc: "File  " + file.name + " is too large, no more than 2M."
      });
    },
    handleBeforeUpload() {
      const check = this.uploadList.length < 5;
      if (!check) {
        this.$Notice.warning({
          title: "Up to five pictures can be uploaded."
        });
      }
      return check;
    }
  },
  mounted() {
    this.$store.commit("bread", "多图上传");
    // console.log(this.uploadList);
    this.uploadList = this.$refs.upload.fileList;
  }
};
</script>

<style>
.upload-button {
  margin-top: 20px;
}

.demo-upload-list {
  display: inline-block;
  width: 60px;
  height: 60px;
  text-align: center;
  line-height: 60px;
  border: 1px solid transparent;
  border-radius: 4px;
  overflow: hidden;
  background: #fff;
  position: relative;
  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
  margin-right: 4px;
}

.demo-upload-list img {
  width: 100%;
  height: 100%;
}

.demo-upload-list-cover {
  display: none;
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background: rgba(0, 0, 0, 0.6);
}

.demo-upload-list:hover .demo-upload-list-cover {
  display: block;
}

.demo-upload-list-cover i {
  color: #fff;
  font-size: 20px;
  cursor: pointer;
  margin: 0 2px;
}
</style>
